Path resolution for recursive modules
نویسندگان
چکیده
The ML module system enables flexible development of large software systems by its support of nested structures, functors and signatures. In spite of this flexibility, however, recursion between modules is prohibited, since dependencies between modules must accord with the order of definitions. As a result of this constraint, programmers may have to consolidate conceptually separate components into a single module, intruding on modular programming. Recently much work has been devoted to extending the module system with recursion, and developing a type system for recursive modules is one of the main subjects of study. Since recursion is an essential mechanism, one is to face several non-trivial issues to be considered for designing a practical type system. Our goal is to make recursive modules an ordinary construct of the module language for ML programmers. We want to use them easily in everyday programming, possibly combining with other constructs of the core and the module languages. With this goal, we are to develop a type system for recursive modules, which is practical and useful from the programmer’s perspective. In this paper, we present a decidable type system which can reconstruct the necessary type information during type checking of recursive modules. In particular, we develop algorithms for resolving forward references in recursive modules, by confining ourselves to first-order functors. The type system is provably sound for a call-by-value operational semantics.
منابع مشابه
Path resolution for nested recursive modules
The ML module system facilitates the modular development of large programs, through decomposition, abstraction and reuse. To increase its flexibility, much work has been devoted to extending it with recursion, which is currently prohibited. The introduction of recursion certainly adds expressivity to the module system. However it also brings out non-trivial problems that a non-recursive module ...
متن کاملAnalysis and implementation of hierarchical mutually recursive first class modules
This thesis presents a novel way to introduce mutually recursive first-class modules into a call-by-value programming language. In our approach, all modules are accessed through dot-notation without any additional syntax for mutually recursive modules. In contrast to other call-by-value languages, mutually recursive modules can be declared without the use of module composition or a self variabl...
متن کاملRecursive Path Orderings Can Also Be Incremental
In this paper the Recursive Path Ordering is adapted for proving termination of rewriting incrementally. The new ordering, called Recursive Path Ordering with Modules, has as ingredients not only a precedence but also an underlying ordering =B. It can be used for incremental (innermost) termination proofs of hierarchical unions by defining =B as an extension of the termination proof obtained fo...
متن کاملComplexes of $C$-projective modules
Inspired by a recent work of Buchweitz and Flenner, we show that, for a semidualizing bimodule $C$, $C$--perfect complexes have the ability to detect when a ring is strongly regular.It is shown that there exists a class of modules which admit minimal resolutions of $C$--projective modules.
متن کاملDesign of an Intelligent Controller for Station Keeping, Attitude Control, and Path Tracking of a Quadrotor Using Recursive Neural Networks
During recent years there has been growing interest in unmanned aerial vehicles (UAVs). Moreover, the necessity to control and navigate these vehicles has attracted much attention from researchers in this field. This is mostly due to the fact that the interactions between turbulent airflows apply complex aerodynamic forces to the system. Since the dynamics of a quadrotor are non-linear and the ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006